#ifndef __GPIO_H
#define __GPIO_H
#include "stm32f0xx.h"
#include "stm32f0xx_ll_gpio.h"

typedef enum
{
  MRESOLUTION_8 = 1,
  MRESOLUTION_16,
  MRESOLUTION_32,
  MRESOLUTION_64,
}MOTOR_RESOLUTION;

void Gpio_init(void);
void GPIO_OUT_init(GPIO_TypeDef *GPIOx, uint32_t PinMask);
void Device_init(void);
void led_time_count(void);
void range_init(void);
void temperature_range_check(uint8_t dir);
void temperature_regulation(void);
void Units_digit_scan(uint8_t datag);
void Tens_digit_scan(uint8_t datag);
void Nixie_Tube_scan(void);
void AllIO_High_resistance_mode(void);
void pwrKey_exti_interrupt(void);
void Adc_Gpio_init(void);
void temperature_control(uint16_t Tempr);
void FanSan_speed(void);

#define FAN_LED_ON	LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_10) //GREEN
#define FAN_LED_OFF	LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_10) //GREEN

#define COOL_ON	 LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_5) //
#define COOL_OFF	LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_5) //

#define NIXIE_A1_ON LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_0) //
#define NIXIE_A1_OFF LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_0) //

#define NIXIE_B2_ON LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_1) //
#define NIXIE_B2_OFF LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_1) //

#define NIXIE_C3_ON LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_2) //
#define NIXIE_C3_OFF LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_2) //

#define NIXIE_D4_ON LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_3) //
#define NIXIE_D4_OFF LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_3) //

#define NIXIE_E5_ON LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_4) //
#define NIXIE_E5_OFF LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_4) //

#define LEFT_REACTION	LL_GPIO_IsInputPinSet(GPIOB, LL_GPIO_PIN_5)
//#define RIGHT_REACTION	LL_GPIO_IsInputPinSet(GPIOB, LL_GPIO_PIN_6)
#define KeyLeft		LL_GPIO_IsInputPinSet(GPIOA, LL_GPIO_PIN_7)//
//#define KeyRight		LL_GPIO_IsInputPinSet(GPIOA, LL_GPIO_PIN_10)//


#endif
